<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>去重</title>
</head>
<body>

</body>
</html>
<script>
    var arr = [];
    for(var i=0;i<20;i++){
        arr.push(parseInt(Math.random()*10));
    }
    Array.prototype.indexOf = function(n){
        for(var i=0;i<this.length;i++){
            if(this[i] == n){
                return i;
            }
        }
        return -1;
    }
    function removeDup(arr,s,e){
        if(s==e){
            //分割就剩下一个
            return [arr[s]]
        }else if(s==e-1){
            //为了优化 剩下两个就不用分割啦
            if(arr[s]==arr[e]){
                return [arr[s]]
            }else{
                return [arr[s],arr[e]];
            }
        }
        //数组平分成两段，
        var l = Math.floor((s+e)/2);
        //左边
        var arrL = removeDup(arr,s,l);
        //右边
        var arrR = removeDup(arr,l+1,e);
        //结果 先把左边的复制进去
        var result = arrL;
        //循环 将不重复的数据插入到结果里面
        for(var i=0;i<arrR.length;i++){
            if(result.indexOf(arrR[i])== -1 ) result.push(arrR[i])
        }
        return result; //返回结果
    }
    var arrDup = removeDup(arr, 0, arr.length-1);
    document.write(arr+'<br/>'+arrDup);

</script>